package com.hmsm.server.util;

import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.text.DecimalFormat;
import java.text.Format;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Random;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @version 1.0.0-SNAPSHOT
 * @author Lzyyj
 */
public class Util {

	private static Date date = new Date();
	private static StringBuilder buf = new StringBuilder();
	private static int seq = 0;
	private static final int ROTATION = 99999;
	private static int num=1;
	private static long currTime=System.currentTimeMillis();

	/**
	 * 正则表达式匹配
	 * 舒俊 2014年3月31日 下午1:31:02
	 * @param patStr 正则表达式
	 * @param str 字符串
	 * @return 如果匹配返回true,否则范围false
	 * @return
	 */
	public boolean matcherPattern(String patStr, String str) {
		/**
		 * ^(?!I).*?DAO$ 不已字母I开头并且以字母DAO结尾
		 */
		Pattern p = Pattern.compile(patStr);
		Matcher m = p.matcher(str);
		return m.find();
	}
	
	/**
	 * 正则表达式匹配
	 * 舒俊 2014年3月31日 下午1:32:57
	 * @param patStr 正则表达式
	 * @param str 字符串
	 * @return 
	 * @return
	 */
	public static boolean isMatches(String patStr, String str) {
		Pattern pattern = Pattern.compile(patStr);
		return pattern.matcher(str).matches();
	}

	/**
	 * 判断是否是数字
	 * 舒俊 2014年3月31日 下午1:31:51
	 * @param str
	 * @return
	 * @return true数字 false非数字
	 */
	public boolean isNum(String str) {
		return str.matches("^[-+]?(([0-9]+)([.]([0-9]+))?|([.]([0-9]+))?)$");
	}
	
	/**
	 * 防止出现科学计数法，并且去掉不需要的00，并且最多保持2位小数
	 * @param value
	 * @return
	 * @author 舒俊
	 * 2013-9-29 上午10:31:29
	 * return:
	 */
	public String changeDouble(double value){
		DecimalFormat df = new DecimalFormat("0.00"); 
		String str = df.format(value);
		if(str.lastIndexOf(".00")==-1){
			return str;
		}else{
			return str.substring(0, str.lastIndexOf("."));
		}
	}

	/**
	 * 判断是否为整数
	 * 舒俊 2014年3月31日 下午1:35:18
	 * @param str 传入的字符串
	 * @return
	 * @return true整数 false非整数
	 */
	public boolean isInteger(String str) {
		return isMatches("^[-\\+]?[\\d]*$", str);
	}

	/**
	 * 判断是否为浮点数，包括double和float
	 * 舒俊 2014年3月31日 下午1:36:41
	 * @param str 传入的字符串
	 * @return
	 * @return true浮点 false非浮点
	 */
	public boolean isDouble(String str) {
		return isMatches("^[-\\+]?[.\\d]*$", str);
	}

	/**
	 * 判断输入的字符串是否符合Email样式
	 * 舒俊 2014年3月31日 下午1:37:29
	 * @param str
	 * @return
	 * @return true是Email false非Email
	 */
	public static boolean isEmail(String str) {
		return isMatches("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$", str);
	}
	
	/**
	 * 是否是身份证号
	 * @param str
	 * @return
	 */
	public boolean isIdCard(String str){
		String patterns = "((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65|71|81|82|91)\\d{4})((((19|20)(([02468][048])|([13579][26]))0229))|((20[0-9][0-9])|(19[0-9][0-9]))((((0[1-9])|(1[0-2]))((0[1-9])|(1\\d)|(2[0-8])))|((((0[1,3-9])|(1[0-2]))(29|30))|(((0[13578])|(1[02]))31))))((\\d{3}(x|X))|(\\d{4}))";
		return isMatches(patterns, str);
	}
	
	/**
	 * 是否是手机号码
	 * @param str
	 * @return
	 */
	public boolean isCellPhone(String str){
		String pat = "^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$";
		return isMatches(pat, str);
	}

	/**
	 * 判断输入的字符串是否为纯汉字
	 * 舒俊 2014年3月31日 下午1:38:20
	 * @param str
	 * @return
	 * @return true纯汉字  false含有其他字符
	 */
	public boolean isChinese(String str) {
		return isMatches("[\u0391-\uFFE5]+$", str);
	}
	
	/**
	 * String 转换为 int对象 
	 * 舒俊 2014年3月31日 下午1:29:36
	 * @param valueObject
	 * @return
	 * @return
	 */
	public int parseInt(String valueObject) {
		int result = 0;
		if (valueObject!=null){
			if(isInteger(valueObject)){
				result = Integer.parseInt(valueObject);
			}
		}
		return result;
	}

	/**
	 * 获取分割后的字符串数组信息
	 * 
	 * @param Str
	 * @param Split
	 * @return 字符串数组 点的转义：. ==> \\u002E 美元符号的转义：$ ==> \\u0024 乘方符号的转义：^ ==>
	 *         \\u005E 左大括号的转义：{ ==> \\u007B 左方括号的转义：[ ==> \\u005B 左圆括号的转义：( ==>
	 *         \\u0028 竖线的转义：| ==> \\u007C 右圆括号的转义：) ==> \\u0029 星号的转义：* ==>
	 *         \\u002A 加号的转义：+ ==> \\u002B 问号的转义：? ==> \\u003F 反斜杠的转义：\ ==>
	 *         \\u005C
	 */
	public String[] getSplitComplex(String str, String split) {
		if (split.equals("|")) {
			split = "\\u007C";
		} else if (split.equals("/")) {
			split = "\\u005C";
		} else if (split.equals(".")) {
			split = "\\u002E";
		} else if (split.equals("*")) {
			split = "\\u002A";
		} else if (split.equals("?")) {
			split = "\\u003F";
		} else if (split.equals("$")) {
			split = "\\u0024";
		} else if (split.equals("+")) {
			split = "\\u002B";
		} else if (split.equals(")")) {
			split = "\\u0029";
		} else if (split.equals("(")) {
			split = "\\u0028";
		} else if (split.equals("[")) {
			split = "\\u005B";
		} else if (split.equals("{")) {
			split = "\\u007B";
		} else if (split.equals("^")) {
			split = "\\u005E";
		}
		return getSplit(str, split);
	}

	/**
	 * 获取分割后的字符串数组信息
	 * 舒俊 2014年3月31日 下午1:41:46
	 * @param str
	 * @param split
	 * @return
	 * @return 字符串数组
	 */
	public String[] getSplit(String str, String split) {
		if(str==null){
			return new String[0];
		}
		return str.split(split);
	}

	/**
	 * 格式化字符串
	 * 舒俊 2014年3月31日 下午1:42:16
	 * @param obj
	 * @param format
	 * @return
	 * @return
	 */
	public String formartDecimal(Object obj, String format) {
		DecimalFormat df = new DecimalFormat(format);
		return df.format(obj);
	}

	/*************************** 日期 开始 *********************************************/
	/**
	 * 日期格式化
	 * 舒俊 2014年3月31日 下午1:44:15
	 * @param format
	 * @return
	 * @return 返回当前时间的格式化字符串
	 */
	public String getSysDate(String format) {
		return getFormatDate(new Date(), format);
	}

	/**
	 * 根据传入的格式获取日期
	 * 舒俊 2014年3月31日 下午1:44:48
	 * @param date
	 * @param format YYYYMMDD || MM/dd/yyyy, hh:mm:ss
	 * @return
	 * @return 格式化的日期
	 */
	public String getFormatDate(Date date, String format) {
		String dateStr = "";
		try {
			Format formatter;
			formatter = new SimpleDateFormat(format);
			dateStr = formatter.format(date);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return dateStr;
	}

	/**
	 * 把字符串转换成指定的日期格式
	 * 舒俊 2014年3月31日 下午1:45:40
	 * @param str
	 * @param format
	 * @return
	 * @return 日期
	 */
	public Date convert(String str, String format) {
		SimpleDateFormat sdf = new SimpleDateFormat(format);
		try {
			java.util.Date d = sdf.parse(str);
			return d;
		} catch (Exception ex) {
			ex.printStackTrace();
			return null;
		}
	}

	/**
	 * 日期差
	 * 舒俊 2014年3月31日 下午1:46:52
	 * @param date
	 * @param countday 相差的天数
	 * @param flag 为true表示日期前，为false表示日期后
	 * @return
	 * @return
	 */
	public Date getDateCA(Date date, int countday, boolean flag) {
		if (flag) {
			return new Date(date.getTime() - countday * 24 * 60 * 60 * 1000L);
		} else {
			return new Date(date.getTime() + countday * 24 * 60 * 60 * 1000L);
		}
	}
	
	/**
	 * 获取两个时间的时间差
	 * 舒俊 2014年3月31日 下午1:47:55
	 * @param date1
	 * @param date2
	 * @return
	 * @return 相差的天数
	 */
	public int getDateToDateDay(Date date1, Date date2) {
		String str1 = this.getFormatDate(date1, "yyyy-MM-dd") + " 00:00:00";
		String str2 = this.getFormatDate(date2, "yyyy-MM-dd") + " 00:00:00";
		Date d1 = this.convert(str1, "yyyy-MM-dd HH:mm:ss");
		Date d2 = this.convert(str2, "yyyy-MM-dd HH:mm:ss");
		long d = d2.getTime() - d1.getTime();
		if (d == 0) {
			return 1;
		} else {
			long t = d / (86400000);
			return (int) t + 1;
		}
	}

	/**
	 * Date 转换 Timestamp
	 * 舒俊 2014年3月31日 下午1:48:13
	 * @param date
	 * @return
	 * @return
	 */
	public Timestamp dateToTimestamp(Date date) {
		Timestamp timestamp = null;
		if (date != null) {
			timestamp = new Timestamp(date.getTime());
		} else {
			timestamp = new Timestamp(System.currentTimeMillis());
		}
		return timestamp;
	}

	/**
	 * 根据传入的格式获取当前日期
	 * 
	 * @param format
	 *            如:YYYYMMDD || MM/dd/yyyy, hh:mm:ss
	 * @return 字符串的日期
	 */
	public String getCurrDate() {
		String date = getSysDate("yyyy-MM-dd HH:mm:ss");
		return date;
	}

	/**
	 * 
	 * 描述:添加月份 参数： 返回：
	 */
	public Date getDateCM(Date date, int countmonth) {
		Calendar calender = Calendar.getInstance();
		calender.setTime(date);
		calender.add(Calendar.MONTH, countmonth);
		return calender.getTime();
	}

	/**
	 * 判断某天是星期几
	 * 
	 * @param strDate
	 * @return 0 表示是星期天
	 */
	public static int getWeekByDate(String strDate) {
		int dayOfWeek = 0;
		try {

			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			Calendar calendar = Calendar.getInstance();
			Date date = sdf.parse(strDate);
			calendar.setTime(date);
			dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return dayOfWeek - 1;
	}
	
	/**
	 * 
	 *  @描述:日期相加或者相减一个月
	 *  @方法名称 :DateMonth
	 *  @作者     :shu jun
	 *  @创建日期 :2014年5月12日 下午1:43:32 
	 *  @param date
	 *  @param month
	 *  @return 日期对象
	 *
	 */
	public Date DateMonth(Date date, int month){
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(date);
		calendar.add(Calendar.MONTH,month);
		return calendar.getTime();
	}

	/**
	 * 当前月最后一天
	 * 
	 * @param date
	 * @return
	 */
	public Date lastDayOfMonth(Date date) {
		if (date != null) {
			Calendar cal = Calendar.getInstance();
			cal.setTime(date);
			cal.set(Calendar.DAY_OF_MONTH, 1);
			cal.add(Calendar.MONTH, 1);
			cal.add(Calendar.DATE, -1);
			return cal.getTime();
		} else {
			return null;
		}

	}
	
	/**
	 * 
	 *  @描述:日期相加或者相减一天
	 *  @方法名称 :DateDay
	 *  @作者     :shu jun
	 *  @创建日期 :2014年5月12日 下午3:29:18 
	 *  @param date
	 *  @param day
	 *  @return
	 *
	 */
	public Date DateDay(Date date,int day){
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(date);
		calendar.add(Calendar.DAY_OF_MONTH,day);
		return calendar.getTime();
	}

	/**
	 * 金额数字，保留两位小数
	 * 
	 * @param str
	 * @return
	 * @author 舒俊
	 */
	public String changeJine(String str) {
		if (isNum(str)) {
			if (str.lastIndexOf(".") == -1) {
				return str + ".00";
			} else {
				String s = str
						.substring(str.lastIndexOf(".") + 1, str.length());
				if (s.length() == 1) {
					return str + "0";
				} else {
					return str;
				}
			}
		}
		return str;
	}

	/**
	 * 将显示的内容按金额方式显示
	 * 
	 * @param str
	 * @return
	 * @author 舒俊
	 */
	public String execJine(String str) {
		List<String> all = new ArrayList<String>();
		String tem = "";
		int last = str.length();
		if (str.lastIndexOf(".") == -1) {
			// 没有小数
		} else {
			// 有小数
			last = str.lastIndexOf(".");
			tem = str.substring(str.lastIndexOf("."), str.length());
		}
		String s = str.substring(0, last);
		while (s.length() > 0) {
			int length = s.length();
			if (length < 3) {
				all.add(s);
				s = "";
			} else {
				all.add(s.substring(length - 3, s.length()));
				s = s.substring(0, s.length() - 3);
			}
		}
		String tem1 = "";
		for (int i = 0; i < all.size(); i++) {
			if (tem1.length() != 0) {
				tem1 = "," + tem1;
			}
			tem1 = all.get(i) + tem1;
		}
		return tem1 + tem;
	}
	//字符转二进制
	public int[] strToBinary(String str){
		int arr[] = new int[128];
		String[] binaryArray =   
			{"0000","0001","0010","0011",  
			"0100","0101","0110","0111",  
			"1000","1001","1010","1011",  
			"1100","1101","1110","1111"}; 
		int index = 0;
		for(int i=0;i<str.length();i++){
			char c = str.charAt(i);
			i++;
			char c1 = str.charAt(i);
			arr[index]=Integer.valueOf((binaryArray[c&0x0f]+binaryArray[c1&0x0f]),2);
			index++;
		}
		return arr;
	}
	//艾格玛指纹仪
	public int[] agmFinger(String finger){
		return strToBinary(finger.substring(24,finger.length()));
	}
	
	/**
	 * 转换为十六进制数字符串
	 * @param buffer
	 * @return
	 */
	public String toHex( byte [] buffer) { 
		StringBuffer buf =  new  StringBuffer(buffer.length * 2); 
		for(int i = 0; i < buffer.length; i++) { 
			if(((int) buffer[i] & 0xff) < 0x10) { 
				buf.append("0"); 
			} 
			buf.append(Long.toString((int) buffer[i] & 0xff, 16)); 
		} 
		return buf.toString().toLowerCase(); 
	}
	
	/**
	 * 将微信数字转换为日期
	 * 舒俊 2014年3月12日 下午3:14:04
	 * @param time
	 * @return
	 * @return
	 */
	public Date changeLongToDate(long time){
		Date date = new Date(time*1000L);
		return date;
	}

	/**
	 * 金额数字，保留两位小数
	 * 
	 * @param str
	 * @return
	 * @author 舒俊
	 */
	public String changeJine(double d) {
		DecimalFormat df = new DecimalFormat();
		df.setMaximumFractionDigits(15); // 设置最大小数位
		String ds = df.format(d);
		if (ds.lastIndexOf(".") == -1) {
			return ds + ".00";
		} else {
			String s = ds.substring(ds.lastIndexOf(".") + 1, ds.length());
			if (s.length() == 1) {
				return ds + "0";
			} else {
				return ds;
			}
		}
	}

   /**
    * 获取文件后缀
    *  @描述:
    *  @方法名称 :fileSuffix
    *  @作者     :shu jun
    *  @创建日期 :2014年4月22日 下午3:46:10 
    *  @param fileName
    *  @return
    *
    */
   public String fileSuffix(String fileName){
	   String suffix = "";
	   try{
		   suffix = fileName.substring(fileName.lastIndexOf(".")+1, fileName.length());
	   }catch(Exception e){
		   Log.log(this,"处理后缀异常："+e.toString()+","+fileName);
	   }
	   return suffix;
   }
	
	/**
	 * 
	 *  @描述: 去字符串空格
	 *  @方法名称 :replaceBlank
	 *  @作者     :luoc
	 *  @创建日期 :2014-4-14 上午09:58:29 
	 *  @param str
	 *  @return
	 *
	 */
	 public String replaceBlank(String str) {
         String dest = "";
         if (str!=null) {
             Pattern p = Pattern.compile("\\s*|\t|\r|\n");
             Matcher m = p.matcher(str);
             dest = m.replaceAll("");
         }
         return dest;
     }
	 
	 public String replaceQuot(String str){
			String[] strAll = str.split("\"");
			if(strAll.length==0){
				return str;
			}
			StringBuffer sb = new StringBuffer();
			for(int i=0;i<strAll.length;i++){
				if(i>0){
					if(i%2!=0){
						sb.append("“");
					}else{
						sb.append("”");
					}
				}
				sb.append(strAll[i]);
			}
			return sb.toString();
		}

	/**
	 * 
	* @Title: next 
	* @author 张佳佳
	* @Description: TODO获取唯一数
	* @param @return    设定文件 
	* @return long    返回类型 
	* @throws
	 */
	public static synchronized long next() {
		if (seq > ROTATION)
		{
			seq = 0;
		}
		buf.delete(0, buf.length());
		date.setTime(System.currentTimeMillis());
		String str = String.format("%1$tY%1$tm%1$td%1$tk%1$tM%1$tS%2$05d",
				date, seq++);
		return Long.parseLong(str);
	}

	/**
	 * 人民币转成大写
	 * 
	 * @param value
	 * @return String
	 */
	public String hangeToBig(double value) {
		char[] hunit = { '拾', '佰', '仟' }; // 段内位置表示
		char[] vunit = { '万', '亿' }; // 段名表示
		char[] digit = { '零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖' }; // 数字表示
		long midVal = (long) (value * 100); // 转化成整形
		String valStr = String.valueOf(midVal); // 转化成字符串

		String head = valStr.substring(0, valStr.length() - 2); // 取整数部分
		String rail = valStr.substring(valStr.length() - 2); // 取小数部分

		StringBuffer prefix = new StringBuffer(); // 整数部分转化的结果
		String suffix = ""; // 小数部分转化的结果
		// 处理小数点后面的数
		if (rail.equals("00")) { // 如果小数部分为0
			suffix = "整";
		} else {
			suffix = digit[rail.charAt(0) - '0'] + "角"
					+ digit[rail.charAt(1) - '0'] + "分"; // 否则把角分转化出来
		}
		// 处理小数点前面的数
		char[] chDig = head.toCharArray(); // 把整数部分转化成字符数组
		char zero = '0'; // 标志'0'表示出现过0
		byte zeroSerNum = 0; // 连续出现0的次数
		for (int i = 0; i < chDig.length; i++) { // 循环处理每个数字
			int idx = (chDig.length - i - 1) % 4; // 取段内位置
			int vidx = (chDig.length - i - 1) / 4; // 取段位置
			if (chDig[i] == '0') { // 如果当前字符是0
				zeroSerNum++; // 连续0次数递增
				if (zero == '0') { // 标志
					zero = digit[0];
				} else if (idx == 0 && vidx > 0 && zeroSerNum < 4) {
					prefix.append(vunit[vidx - 1]);
					zero = '0';
				}
				continue;
			}
			zeroSerNum = 0; // 连续0次数清零
			if (zero != '0') { // 如果标志不为0,则加上,例如万,亿什么的
				prefix.append(zero);
				zero = '0';
			}
			prefix.append(digit[chDig[i] - '0']); // 转化该数字表示
			if (idx > 0)
			{
				prefix.append(hunit[idx - 1]);
			}
			if (idx == 0 && vidx > 0) {
				prefix.append(vunit[vidx - 1]); // 段结束位置应该加上段名如万,亿
			}
		}

		if (prefix.length() > 0)
		{
			prefix.append('圆'); // 如果整数部分存在,则有圆的字样
		}
		return prefix.toString() + suffix; // 返回正确表示
	}

	/*
	 * utf-8编码转换 *
	 */
	public String UTFCODE(String code) {
		try {
			return java.net.URLDecoder.decode(code, "utf-8");
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
		return code;
	}

	/**
	 * 产生一个随机码
	 * 
	 * @param num
	 *            位数
	 * @return
	 */
	public int getRandom(int num) {
		long time = System.currentTimeMillis();
		Random random = new Random(time);
		String strRandom = time + "";
		strRandom = strRandom.substring(strRandom.length() - 1);
		if (strRandom.equals("0")) {
			strRandom = "8";
		}
		for (int i = 0; i < num - 1; i++) {
			String tem = (random.nextInt() + "");
			tem = tem.substring(tem.length() - 1);
			strRandom += tem;
		}
		return Integer.parseInt(strRandom);
	}
	
	/**
	 * 
	 * @Description:检验手机号码是否合法
	 * @MethodName :isMobileNO
	 * @Author :luoc
	 * @CreateDate :2014-3-11 下午07:20:43
	 * @return
	 *
	 */
	public static boolean isMobileNO(String mobiles) {
		Pattern p = Pattern.compile("^((13[0-9])|(15[^4,\\D])|(17[0-9])|(18[0,5-9]))\\d{8}$");
		Matcher m = p.matcher(mobiles);
		return m.matches();
	}
	
	/**
	 * 生成随机数
	 * @return
	 */
	
	public static String getUniqueID(){
		String str = "";
		if(currTime==System.currentTimeMillis()){
			num++;
			if(num>999){
				str = (num/999)+"";
			}
		}else{
			currTime = System.currentTimeMillis();
			num = 1;
		}
		str = currTime + str + num;
		return str;
	}

	/**
	 * 
	 * @Description:判断星期
	 * @MethodName :getWeekDayString
	 * @Author :yaosq
	 * @CreateDate :2013-12-18 上午11:53:57
	 * @return
	 *
	 */
	public String getWeekDayString() {
		String weekString = "";
		final String dayNames[] = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
		Calendar calendar = Calendar.getInstance();
		Date date = new Date();
		calendar.setTime(date);
		int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
		weekString = dayNames[dayOfWeek - 1];
		return weekString;

	}

	/**
	 * 
	 * @Description:去掉小数多余的0
	 * @MethodName :subZero
	 * @Author :yaosq
	 * @CreateDate :2013-12-26 上午10:33:22
	 * @param str
	 * @return
	 *
	 */
	public String subZero(String str) {
		if (str.indexOf(".") > 0) {
			str = str.replaceAll("0+?$", "");
			str = str.replaceAll("[.]$", "");
		}
		return str;
	}

	/**
	 * 
	 * @Description:精确的加法运算
	 * @MethodName :add
	 * @Author :yaosq
	 * @CreateDate :2013-12-27 下午02:02:19
	 * @param v1
	 * @param v2
	 * @return
	 *
	 */
	public double add(double v1, double v2) {
		BigDecimal b1 = new BigDecimal(Double.toString(v1));
		BigDecimal b2 = new BigDecimal(Double.toString(v2));
		return b1.add(b2).doubleValue();
	}

	/**
	 * 
	 * @Description:精确的减法运算
	 * @MethodName :subtract
	 * @Author :yaosq
	 * @CreateDate :2013-12-27 下午02:20:43
	 * @param v1
	 * @param v2
	 * @return
	 *
	 */
	public double subtract(double v1, double v2) {
		BigDecimal b1 = new BigDecimal(Double.toString(v1));
		BigDecimal b2 = new BigDecimal(Double.toString(v2));
		return b1.subtract(b2).doubleValue();
	}

	/**
	 * @描述:四舍五入保留两位两位小数
	 * @方法名称:round2
	 * @作者:fengtao
	 * @创建日期:2014-4-30 上午11:28:42
	 * @param value
	 * @return
	 **/
	public static double roundTo2(double value) {
		BigDecimal b = new BigDecimal(Double.toString(value));
		BigDecimal one = new BigDecimal("1");
		return b.divide(one, 2, BigDecimal.ROUND_HALF_UP).doubleValue();
	}

	/**
	 * 
	 * @描述:只要天即可
	 * @方法名称 :getDateDay
	 * @作者 :shu jun
	 * @创建日期 :2014年4月30日 上午10:24:13
	 * @param date
	 * @return
	 *
	 */
	public Date getDateDay(Date date) {
		return convert(getFormatDate(date, "yyyy-MM-dd"), "yyyy-MM-dd");
	}
	
	/**
	 * 
	 *  @描述:格式化千分隔
	 *  @方法名称 :Money
	 *  @作者     :shu jun
	 *  @创建日期 :2014年5月12日 下午7:41:23 
	 *  @param content
	 *  @return
	 *
	 */
	public String Money(double money){
		DecimalFormat df = new DecimalFormat("###,##0.00");
		String content = df.format(money);
		return content;
	}
	
	public static void main(String[] args) {
		Util u = new Util();
		String stt = "曹市分社贷款清册2014年2月.xls";
		System.out.println(u.fileSuffix(stt));
	}
	
}
